package com.developer.web.content.publicpage.macroproceso;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.developer.core.page.PublicPage;
import com.developer.core.utils.ObjectToXML;
import com.developer.logic.modulo.general.dto.VOHistoricoIndicador;
import com.developer.logic.modulo.general.dto.VOInpIndicadoresProcesos;
import com.developer.logic.modulo.general.dto.VOProceso;
import com.developer.persistence.modulo.general.ControllerHistoricoInd;
import com.developer.persistence.modulo.general.ControllerInp_indicadores;
import com.developer.persistence.modulo.general.ControllerProceso;

public class PageDetalleSubproceso extends PublicPage {

	@Override
	public String getNextPage() {
		// TODO Auto-generated method stub
		return null;
	}


	@Override
	public StringBuffer executeAction(HttpServletRequest request) {
		
		StringBuffer xmlPage = null;
		xmlPage = new StringBuffer();
		
		/*
		 * ========================
		 * == PROCESO
		 * ========================
		 */
		Map<String, Object> parametersDetalle = getParameters(request, true);
		VOProceso proceso = (VOProceso)getParameterToObject("VOProceso", VOProceso.class, null, parametersDetalle);
		
		ControllerProceso controllerProc= new ControllerProceso();
		List<VOProceso> procLista = controllerProc.consultaProcesoSel(proceso);
	
		procLista.add(proceso);
		
	    for (VOProceso voProceso :procLista){
	    	
	    	if (voProceso.getPro_codigo() == 4){voProceso.setSubproceso_semaforo("VERDE");}
			if (voProceso.getPro_codigo() == 6){voProceso.setSubproceso_semaforo("VERDE");}
			if (voProceso.getPro_codigo() == 7){voProceso.setSubproceso_semaforo("AMARILLO");}
			if (voProceso.getPro_codigo() == 8){voProceso.setSubproceso_semaforo("ROJO");}
			if (voProceso.getPro_codigo() == 14){voProceso.setSubproceso_semaforo("ROJO");}
	    }
		
		/*
		 * ===========================
		 * == INDICADORES DEL PROCESO
		 * ===========================
		 */
		ControllerInp_indicadores controllerInp= new ControllerInp_indicadores();
		List<VOInpIndicadoresProcesos> inpLista = controllerInp.consultarINPInd(proceso.getPro_codigo());
		
			
		for (VOInpIndicadoresProcesos voInp : inpLista) {
				
			/*
			 * VALORES PARA EL SEMÁFORO INDICADORES
			 * */
			
			if (voInp.getHin_cumplimiento() <= 40)
			{
				voInp.setProceso_semaforo("ROJO");
			
			}else if ((voInp.getHin_cumplimiento() > 40) && (voInp.getHin_cumplimiento() < 60))
				{voInp.setProceso_semaforo("AMARILLO");
				
			}else{
			voInp.setProceso_semaforo("VERDE");}
			
		}
			
		/*
		 * ===========================================
		 * == HISTORICO INDICADORES DEL PROCESO (POPUP)
		 * ============================================
		 */
		
		
	//	ControllerHistoricoInd controllerHis= new ControllerHistoricoInd();
		//List<VOHistoricoIndicador> hisInd = controllerHis.consultarHistorico(proceso.getPro_codigo());
		
		
		/*
		 * for (VOHistoricoIndicador hisindi : hisInd) {
		System.out.println("VALORES QUE ESPERO 2 : "+hisindi.getInd_sigla());
		}
		*/
		
		
		
		/*
		 * ========================
		 * == INDICADOR
		 * ========================
		 */
		/*
		Double indicadorSubproceso = Math.random()*100;
		SubProceso subproceso = new SubProceso();
		subproceso.setsubproceso_indicador(Math.round(indicadorSubproceso.doubleValue())+"%");
		subproceso.setsubproceso_nombre("Descripcion subproceso "+1);
		subproceso.setsubproceso_subproceso(""+1);
		subproceso.setsubproceso_tipo(""+1);
		subproceso.setSubproceso_proceso(""+proceso_proceso);
		subproceso.setProceso(proceso);
		
		if(indicadorSubproceso<30){
			subproceso.setsubproceso_semaforo("ROJO");
			
			
		}else if(indicadorSubproceso<60){
			subproceso.setsubproceso_semaforo("AMARILLO");
		
		}else{
			subproceso.setsubproceso_semaforo("VERDE");
			
		}
			*/	
		/*
		 * ========================
		 * == DETALLE INDICADOR
		 * ========================
		 */	
		/*
		List<DetalleSubProceso> detallesSubproceso = new ArrayList<DetalleSubProceso>();
		
		for (int i = 1; i < 6; i++) {
			Double indicadorDetalle = Math.random()*100;
			SimpleLogger.info("Indiicador:"+indicadorDetalle);
			
			DetalleSubProceso detalleSubProceso= new DetalleSubProceso();
			detalleSubProceso.setDetalle_actividad(""+i);
			detalleSubProceso.setDetalle_actividad_descri("Descripcion Actividad "+i);
			
			if(indicadorDetalle<50){
				detalleSubProceso.setDetalle_corporativa("SI");
			}else{
				detalleSubProceso.setDetalle_corporativa("NO");
			}
			
			detalleSubProceso.setDetalle_estrategia(""+i+1);
			detalleSubProceso.setDetalle_estrategia_descri("Descripcion Estrategia"+i+1);
			detalleSubProceso.setDetalle_indicador(""+indicadorDetalle.intValue());
			if(indicadorDetalle<30){
				
				detalleSubProceso.setDetalle_semaforo("ROJO");
			}else if(indicadorDetalle<60){
				
				detalleSubProceso.setDetalle_semaforo("AMARILLO");
			}else{
				detalleSubProceso.setDetalle_semaforo("VERDE");
			}
			
			detalleSubProceso.setDetalle_tipo_indicador(""+i);
			detallesSubproceso.add(detalleSubProceso);
				
		}
		
		subproceso.setDetallesSubproceso(detallesSubproceso);
		
		*/
		/*
		 * ========================
		 * == HISTORICO INDICADOR
		 * ========================
		 */	
		/*
		List<DetalleSubProceso> historicoDetalleSubproceso = new ArrayList<DetalleSubProceso>();
		
		for (int i = 1; i < 11; i++) {
			Double indicadorDetalle = Math.random()*100;
			SimpleLogger.info("Indiicador:"+indicadorDetalle);
			
			DetalleSubProceso detalleSubProceso= new DetalleSubProceso();
			detalleSubProceso.setDetalle_detalle(""+i);
			detalleSubProceso.setDetalle_actividad(""+indicadorDetalle.intValue());
			detalleSubProceso.setDetalle_actividad_descri("Descripcion Actividad "+i);
			
			if(indicadorDetalle<50){
				detalleSubProceso.setDetalle_corporativa("SI");
			}else{
				detalleSubProceso.setDetalle_corporativa("NO");
			}
			
			detalleSubProceso.setDetalle_estrategia(""+i+1);
			detalleSubProceso.setDetalle_estrategia_descri("Descripcion Estrategia"+i+1);
			detalleSubProceso.setDetalle_indicador(""+indicadorDetalle.intValue());
			if(indicadorDetalle<30){
				
				detalleSubProceso.setDetalle_semaforo("ROJO");
			}else if(indicadorDetalle<60){
				
				detalleSubProceso.setDetalle_semaforo("AMARILLO");
			}else{
				detalleSubProceso.setDetalle_semaforo("VERDE");
			}
			
			detalleSubProceso.setDetalle_tipo_indicador(""+i);
			historicoDetalleSubproceso.add(detalleSubProceso);
				
		}
		
		subproceso.sethistoricoDetalleSubproceso(historicoDetalleSubproceso);
		*/
		
	
		xmlPage.append(ObjectToXML.getInstance().getXML(procLista));
		xmlPage.append(ObjectToXML.getInstance().getXML(inpLista));
	//	xmlPage.append(ObjectToXML.getInstance().getXML(hisInd));
		return xmlPage;
		
	
	}
	
	@Override
	public boolean isAccesoValido(HttpServletRequest arg0) {
		return true;

	}
	
	
	
}
